package com.vates.vsp.practico.asistencia.service.impl;

import java.util.Collection;
import java.util.List;

import org.springframework.stereotype.Repository;

import com.vates.vsp.practico.alumnos.business.Clases;
import com.vates.vsp.practico.asistencia.business.Asistencia;
import com.vates.vsp.practico.asistencia.service.AsistenciaService;
import com.vates.vsp.practico.commons.AbstractBaseService;

@Repository("asistenciaService")
public class AsistenciaServiceImpl extends AbstractBaseService implements AsistenciaService {

	/* (non-Javadoc)
	 * @see com.vates.vsp.practico.asistencia.service.impl.AsistenciaService#guardar(com.vates.vsp.practico.asistencia.business.Asistencia)
	 */
	@Override
	public void guardar(Asistencia asistencia) {
		this.getHibernateTemplate().saveOrUpdate(asistencia);
	}

	/* (non-Javadoc)
	 * @see com.vates.vsp.practico.asistencia.service.impl.AsistenciaService#eliminar(com.vates.vsp.practico.asistencia.business.Asistencia)
	 */
	@Override
	public void eliminar(Asistencia asistencia) {
		this.getHibernateTemplate().delete(asistencia);
	}

	/* (non-Javadoc)
	 * @see com.vates.vsp.practico.asistencia.service.impl.AsistenciaService#guardar(java.util.Collection)
	 */
	@Override
	public void guardar(Collection<Asistencia> asistencias) {
		this.getHibernateTemplate().saveOrUpdateAll(asistencias);
	}

	/* (non-Javadoc)
	 * @see com.vates.vsp.practico.asistencia.service.impl.AsistenciaService#eliminar(java.util.Collection)
	 */
	@Override
	public void eliminar(Collection<Asistencia> asistencias) {
		this.getHibernateTemplate().deleteAll(asistencias);
	}

	/* (non-Javadoc)
	 * @see com.vates.vsp.practico.asistencia.service.impl.AsistenciaService#getClases()
	 */
	@Override
	public List<Clases> getClases() {
		return this.getHibernateTemplate().find("FROM Clases");
	}

	/* (non-Javadoc)
	 * @see com.vates.vsp.practico.asistencia.service.impl.AsistenciaService#getAsistenciaPorClase(com.vates.vsp.practico.alumnos.business.Clases)
	 */
	@Override
	public List<Asistencia> getAsistenciaPorClase(Clases clase) {
		return this.getHibernateTemplate().find(
				"FROM Asistencia A WHERE A.Clases.id=" + clase.getId());
	}
	
	public Clases getClase(Clases clase) {
		return this.get(Clases.class, clase.getId());
	}
}
